/* 
动机：
    1. 如果一组数据总是结伴同行，那么它们就是所谓的“数据泥团”；
    2. 用一个数据结构代替这个“数据泥团”；
    3. 这项重构的意义在于：它会催生代码中更深层次的改变。

做法：
    1. 如果暂时还没有一个合适的数据结构，就创建一个；
        -- 我倾向于使用类，因为放行为很容易。
    2. 测试；
    3. 使用【改变函数声明】给原来的函数新增一个参数，类型是新建的数据结构；
    4. 测试；
    5. 调整所有调用者，传入新数据结构的适当实例，每修改一处，执行测试；
    6.用新数据结构中的每项元素，逐一取代参数列表中与之对应的参数项，然后删除原来的参数。测试。
*/

const station = {
    name: "ZB1",
    readings: [
        { temp: 47, time: "2016-11-10 09:10" },
        { temp: 53, time: "2016-11-10 09:20" },
        { temp: 58, time: "2016-11-10 09:30" },
        { temp: 53, time: "2016-11-10 09:40" },
        { temp: 51, time: "2016-11-10 09:50" },
    ]
};

function readingOutsideRange(station, min, max) {
    return station.readings.filter(r => r.temp < min || r.temp > max);
}

alerts = readingOutsideRange(station, operatingPlan.temperatureFloor, operatingPlan.temperatureCeiling);

/******************************************************************* */
class NumberRange {
    constructor(min, max) {
        this._data = { min: min, max: max };
    }
    getMin() {
        return this._data.min;
    }
    getMax() {
        return this._data.max;
    }
}


const range = new NumberRange(operatingPlan.temperatureFloor, operatingPlan.temperatureCeiling);

function readingOutsideRange(station, range) {
    return station.readings.filter(r => r.temp < range.getMin || r.temp > range.getMax);
}

alerts = readingOutsideRange(station, range);
